/**
 * <copyright>
 * </copyright>
 *
 * $Id$
 */
package ar.edu.utn.frsf.cidisi.ginet.formalization;

import org.eclipse.emf.ecore.EAttribute;
import org.eclipse.emf.ecore.EClass;
import org.eclipse.emf.ecore.EPackage;
import org.eclipse.emf.ecore.EReference;

/**
 * <!-- begin-user-doc -->
 * The <b>Package</b> for the model.
 * It contains accessors for the meta objects to represent
 * <ul>
 *   <li>each class,</li>
 *   <li>each feature of each class,</li>
 *   <li>each enum,</li>
 *   <li>and each data type</li>
 * </ul>
 * <!-- end-user-doc -->
 * @see ar.edu.utn.frsf.cidisi.ginet.formalization.FormalizationFactory
 * @model kind="package"
 * @generated
 */
public interface FormalizationPackage extends EPackage {
	/**
	 * The package name.
	 * <!-- begin-user-doc -->
	 * <!-- end-user-doc -->
	 * @generated
	 */
	String eNAME = "formalization";

	/**
	 * The package namespace URI.
	 * <!-- begin-user-doc -->
	 * <!-- end-user-doc -->
	 * @generated
	 */
	String eNS_URI = "ar.edu.utn.frsf.cidisi.formalization";

	/**
	 * The package namespace name.
	 * <!-- begin-user-doc -->
	 * <!-- end-user-doc -->
	 * @generated
	 */
	String eNS_PREFIX = "formalization";

	/**
	 * The singleton instance of the package.
	 * <!-- begin-user-doc -->
	 * <!-- end-user-doc -->
	 * @generated
	 */
	FormalizationPackage eINSTANCE = ar.edu.utn.frsf.cidisi.ginet.formalization.impl.FormalizationPackageImpl.init();

	/**
	 * The meta object id for the '{@link ar.edu.utn.frsf.cidisi.ginet.formalization.impl.FormalCBPLanguageImpl <em>Formal CBP Language</em>}' class.
	 * <!-- begin-user-doc -->
	 * <!-- end-user-doc -->
	 * @see ar.edu.utn.frsf.cidisi.ginet.formalization.impl.FormalCBPLanguageImpl
	 * @see ar.edu.utn.frsf.cidisi.ginet.formalization.impl.FormalizationPackageImpl#getFormalCBPLanguage()
	 * @generated
	 */
	int FORMAL_CBP_LANGUAGE = 0;

	/**
	 * The feature id for the '<em><b>Formalized Elements</b></em>' map.
	 * <!-- begin-user-doc -->
	 * <!-- end-user-doc -->
	 * @generated
	 * @ordered
	 */
	int FORMAL_CBP_LANGUAGE__FORMALIZED_ELEMENTS = 0;

	/**
	 * The feature id for the '<em><b>Cbp Metamodel</b></em>' attribute.
	 * <!-- begin-user-doc -->
	 * <!-- end-user-doc -->
	 * @generated
	 * @ordered
	 */
	int FORMAL_CBP_LANGUAGE__CBP_METAMODEL = 1;

	/**
	 * The feature id for the '<em><b>Abstract GI Net</b></em>' attribute.
	 * <!-- begin-user-doc -->
	 * <!-- end-user-doc -->
	 * @generated
	 * @ordered
	 */
	int FORMAL_CBP_LANGUAGE__ABSTRACT_GI_NET = 2;

	/**
	 * The feature id for the '<em><b>Root Element</b></em>' containment reference.
	 * <!-- begin-user-doc -->
	 * <!-- end-user-doc -->
	 * @generated
	 * @ordered
	 */
	int FORMAL_CBP_LANGUAGE__ROOT_ELEMENT = 3;

	/**
	 * The number of structural features of the '<em>Formal CBP Language</em>' class.
	 * <!-- begin-user-doc -->
	 * <!-- end-user-doc -->
	 * @generated
	 * @ordered
	 */
	int FORMAL_CBP_LANGUAGE_FEATURE_COUNT = 4;

	/**
	 * The meta object id for the '{@link ar.edu.utn.frsf.cidisi.ginet.formalization.impl.FormalAssociationImpl <em>Formal Association</em>}' class.
	 * <!-- begin-user-doc -->
	 * <!-- end-user-doc -->
	 * @see ar.edu.utn.frsf.cidisi.ginet.formalization.impl.FormalAssociationImpl
	 * @see ar.edu.utn.frsf.cidisi.ginet.formalization.impl.FormalizationPackageImpl#getFormalAssociation()
	 * @generated
	 */
	int FORMAL_ASSOCIATION = 1;

	/**
	 * The feature id for the '<em><b>Key</b></em>' attribute.
	 * <!-- begin-user-doc -->
	 * <!-- end-user-doc -->
	 * @generated
	 * @ordered
	 */
	int FORMAL_ASSOCIATION__KEY = 0;

	/**
	 * The feature id for the '<em><b>Value</b></em>' attribute.
	 * <!-- begin-user-doc -->
	 * <!-- end-user-doc -->
	 * @generated
	 * @ordered
	 */
	int FORMAL_ASSOCIATION__VALUE = 1;

	/**
	 * The number of structural features of the '<em>Formal Association</em>' class.
	 * <!-- begin-user-doc -->
	 * <!-- end-user-doc -->
	 * @generated
	 * @ordered
	 */
	int FORMAL_ASSOCIATION_FEATURE_COUNT = 2;

	/**
	 * The meta object id for the '{@link ar.edu.utn.frsf.cidisi.ginet.formalization.impl.FormalElementImpl <em>Formal Element</em>}' class.
	 * <!-- begin-user-doc -->
	 * <!-- end-user-doc -->
	 * @see ar.edu.utn.frsf.cidisi.ginet.formalization.impl.FormalElementImpl
	 * @see ar.edu.utn.frsf.cidisi.ginet.formalization.impl.FormalizationPackageImpl#getFormalElement()
	 * @generated
	 */
	int FORMAL_ELEMENT = 2;

	/**
	 * The feature id for the '<em><b>Element</b></em>' reference.
	 * <!-- begin-user-doc -->
	 * <!-- end-user-doc -->
	 * @generated
	 * @ordered
	 */
	int FORMAL_ELEMENT__ELEMENT = 0;

	/**
	 * The number of structural features of the '<em>Formal Element</em>' class.
	 * <!-- begin-user-doc -->
	 * <!-- end-user-doc -->
	 * @generated
	 * @ordered
	 */
	int FORMAL_ELEMENT_FEATURE_COUNT = 1;

	/**
	 * The meta object id for the '{@link ar.edu.utn.frsf.cidisi.ginet.formalization.impl.MetamodelElementImpl <em>Metamodel Element</em>}' class.
	 * <!-- begin-user-doc -->
	 * <!-- end-user-doc -->
	 * @see ar.edu.utn.frsf.cidisi.ginet.formalization.impl.MetamodelElementImpl
	 * @see ar.edu.utn.frsf.cidisi.ginet.formalization.impl.FormalizationPackageImpl#getMetamodelElement()
	 * @generated
	 */
	int METAMODEL_ELEMENT = 3;

	/**
	 * The feature id for the '<em><b>Element</b></em>' reference.
	 * <!-- begin-user-doc -->
	 * <!-- end-user-doc -->
	 * @generated
	 * @ordered
	 */
	int METAMODEL_ELEMENT__ELEMENT = 0;

	/**
	 * The number of structural features of the '<em>Metamodel Element</em>' class.
	 * <!-- begin-user-doc -->
	 * <!-- end-user-doc -->
	 * @generated
	 * @ordered
	 */
	int METAMODEL_ELEMENT_FEATURE_COUNT = 1;

	/**
	 * The meta object id for the '{@link ar.edu.utn.frsf.cidisi.ginet.formalization.impl.RootElementImpl <em>Root Element</em>}' class.
	 * <!-- begin-user-doc -->
	 * <!-- end-user-doc -->
	 * @see ar.edu.utn.frsf.cidisi.ginet.formalization.impl.RootElementImpl
	 * @see ar.edu.utn.frsf.cidisi.ginet.formalization.impl.FormalizationPackageImpl#getRootElement()
	 * @generated
	 */
	int ROOT_ELEMENT = 4;

	/**
	 * The feature id for the '<em><b>Element</b></em>' reference.
	 * <!-- begin-user-doc -->
	 * <!-- end-user-doc -->
	 * @generated
	 * @ordered
	 */
	int ROOT_ELEMENT__ELEMENT = 0;

	/**
	 * The number of structural features of the '<em>Root Element</em>' class.
	 * <!-- begin-user-doc -->
	 * <!-- end-user-doc -->
	 * @generated
	 * @ordered
	 */
	int ROOT_ELEMENT_FEATURE_COUNT = 1;


	/**
	 * Returns the meta object for class '{@link ar.edu.utn.frsf.cidisi.ginet.formalization.FormalCBPLanguage <em>Formal CBP Language</em>}'.
	 * <!-- begin-user-doc -->
	 * <!-- end-user-doc -->
	 * @return the meta object for class '<em>Formal CBP Language</em>'.
	 * @see ar.edu.utn.frsf.cidisi.ginet.formalization.FormalCBPLanguage
	 * @generated
	 */
	EClass getFormalCBPLanguage();

	/**
	 * Returns the meta object for the map '{@link ar.edu.utn.frsf.cidisi.ginet.formalization.FormalCBPLanguage#getFormalizedElements <em>Formalized Elements</em>}'.
	 * <!-- begin-user-doc -->
	 * <!-- end-user-doc -->
	 * @return the meta object for the map '<em>Formalized Elements</em>'.
	 * @see ar.edu.utn.frsf.cidisi.ginet.formalization.FormalCBPLanguage#getFormalizedElements()
	 * @see #getFormalCBPLanguage()
	 * @generated
	 */
	EReference getFormalCBPLanguage_FormalizedElements();

	/**
	 * Returns the meta object for the attribute '{@link ar.edu.utn.frsf.cidisi.ginet.formalization.FormalCBPLanguage#getCbpMetamodel <em>Cbp Metamodel</em>}'.
	 * <!-- begin-user-doc -->
	 * <!-- end-user-doc -->
	 * @return the meta object for the attribute '<em>Cbp Metamodel</em>'.
	 * @see ar.edu.utn.frsf.cidisi.ginet.formalization.FormalCBPLanguage#getCbpMetamodel()
	 * @see #getFormalCBPLanguage()
	 * @generated
	 */
	EAttribute getFormalCBPLanguage_CbpMetamodel();

	/**
	 * Returns the meta object for the attribute '{@link ar.edu.utn.frsf.cidisi.ginet.formalization.FormalCBPLanguage#getAbstractGINet <em>Abstract GI Net</em>}'.
	 * <!-- begin-user-doc -->
	 * <!-- end-user-doc -->
	 * @return the meta object for the attribute '<em>Abstract GI Net</em>'.
	 * @see ar.edu.utn.frsf.cidisi.ginet.formalization.FormalCBPLanguage#getAbstractGINet()
	 * @see #getFormalCBPLanguage()
	 * @generated
	 */
	EAttribute getFormalCBPLanguage_AbstractGINet();

	/**
	 * Returns the meta object for the containment reference '{@link ar.edu.utn.frsf.cidisi.ginet.formalization.FormalCBPLanguage#getRootElement <em>Root Element</em>}'.
	 * <!-- begin-user-doc -->
	 * <!-- end-user-doc -->
	 * @return the meta object for the containment reference '<em>Root Element</em>'.
	 * @see ar.edu.utn.frsf.cidisi.ginet.formalization.FormalCBPLanguage#getRootElement()
	 * @see #getFormalCBPLanguage()
	 * @generated
	 */
	EReference getFormalCBPLanguage_RootElement();

	/**
	 * Returns the meta object for class '{@link java.util.Map.Entry <em>Formal Association</em>}'.
	 * <!-- begin-user-doc -->
	 * <!-- end-user-doc -->
	 * @return the meta object for class '<em>Formal Association</em>'.
	 * @see java.util.Map.Entry
	 * @model keyDataType="org.eclipse.emf.ecore.xml.type.String"
	 *        valueDataType="org.eclipse.emf.ecore.xml.type.String"
	 * @generated
	 */
	EClass getFormalAssociation();

	/**
	 * Returns the meta object for the attribute '{@link java.util.Map.Entry <em>Value</em>}'.
	 * <!-- begin-user-doc -->
	 * <!-- end-user-doc -->
	 * @return the meta object for the attribute '<em>Value</em>'.
	 * @see java.util.Map.Entry
	 * @see #getFormalAssociation()
	 * @generated
	 */
	EAttribute getFormalAssociation_Value();

	/**
	 * Returns the meta object for the attribute '{@link java.util.Map.Entry <em>Key</em>}'.
	 * <!-- begin-user-doc -->
	 * <!-- end-user-doc -->
	 * @return the meta object for the attribute '<em>Key</em>'.
	 * @see java.util.Map.Entry
	 * @see #getFormalAssociation()
	 * @generated
	 */
	EAttribute getFormalAssociation_Key();

	/**
	 * Returns the meta object for class '{@link ar.edu.utn.frsf.cidisi.ginet.formalization.FormalElement <em>Formal Element</em>}'.
	 * <!-- begin-user-doc -->
	 * <!-- end-user-doc -->
	 * @return the meta object for class '<em>Formal Element</em>'.
	 * @see ar.edu.utn.frsf.cidisi.ginet.formalization.FormalElement
	 * @generated
	 */
	EClass getFormalElement();

	/**
	 * Returns the meta object for the reference '{@link ar.edu.utn.frsf.cidisi.ginet.formalization.FormalElement#getElement <em>Element</em>}'.
	 * <!-- begin-user-doc -->
	 * <!-- end-user-doc -->
	 * @return the meta object for the reference '<em>Element</em>'.
	 * @see ar.edu.utn.frsf.cidisi.ginet.formalization.FormalElement#getElement()
	 * @see #getFormalElement()
	 * @generated
	 */
	EReference getFormalElement_Element();

	/**
	 * Returns the meta object for class '{@link ar.edu.utn.frsf.cidisi.ginet.formalization.MetamodelElement <em>Metamodel Element</em>}'.
	 * <!-- begin-user-doc -->
	 * <!-- end-user-doc -->
	 * @return the meta object for class '<em>Metamodel Element</em>'.
	 * @see ar.edu.utn.frsf.cidisi.ginet.formalization.MetamodelElement
	 * @generated
	 */
	EClass getMetamodelElement();

	/**
	 * Returns the meta object for the reference '{@link ar.edu.utn.frsf.cidisi.ginet.formalization.MetamodelElement#getElement <em>Element</em>}'.
	 * <!-- begin-user-doc -->
	 * <!-- end-user-doc -->
	 * @return the meta object for the reference '<em>Element</em>'.
	 * @see ar.edu.utn.frsf.cidisi.ginet.formalization.MetamodelElement#getElement()
	 * @see #getMetamodelElement()
	 * @generated
	 */
	EReference getMetamodelElement_Element();

	/**
	 * Returns the meta object for class '{@link ar.edu.utn.frsf.cidisi.ginet.formalization.RootElement <em>Root Element</em>}'.
	 * <!-- begin-user-doc -->
	 * <!-- end-user-doc -->
	 * @return the meta object for class '<em>Root Element</em>'.
	 * @see ar.edu.utn.frsf.cidisi.ginet.formalization.RootElement
	 * @generated
	 */
	EClass getRootElement();

	/**
	 * Returns the meta object for the reference '{@link ar.edu.utn.frsf.cidisi.ginet.formalization.RootElement#getElement <em>Element</em>}'.
	 * <!-- begin-user-doc -->
	 * <!-- end-user-doc -->
	 * @return the meta object for the reference '<em>Element</em>'.
	 * @see ar.edu.utn.frsf.cidisi.ginet.formalization.RootElement#getElement()
	 * @see #getRootElement()
	 * @generated
	 */
	EReference getRootElement_Element();

	/**
	 * Returns the factory that creates the instances of the model.
	 * <!-- begin-user-doc -->
	 * <!-- end-user-doc -->
	 * @return the factory that creates the instances of the model.
	 * @generated
	 */
	FormalizationFactory getFormalizationFactory();

	/**
	 * <!-- begin-user-doc -->
	 * Defines literals for the meta objects that represent
	 * <ul>
	 *   <li>each class,</li>
	 *   <li>each feature of each class,</li>
	 *   <li>each enum,</li>
	 *   <li>and each data type</li>
	 * </ul>
	 * <!-- end-user-doc -->
	 * @generated
	 */
	interface Literals {
		/**
		 * The meta object literal for the '{@link ar.edu.utn.frsf.cidisi.ginet.formalization.impl.FormalCBPLanguageImpl <em>Formal CBP Language</em>}' class.
		 * <!-- begin-user-doc -->
		 * <!-- end-user-doc -->
		 * @see ar.edu.utn.frsf.cidisi.ginet.formalization.impl.FormalCBPLanguageImpl
		 * @see ar.edu.utn.frsf.cidisi.ginet.formalization.impl.FormalizationPackageImpl#getFormalCBPLanguage()
		 * @generated
		 */
		EClass FORMAL_CBP_LANGUAGE = eINSTANCE.getFormalCBPLanguage();

		/**
		 * The meta object literal for the '<em><b>Formalized Elements</b></em>' map feature.
		 * <!-- begin-user-doc -->
		 * <!-- end-user-doc -->
		 * @generated
		 */
		EReference FORMAL_CBP_LANGUAGE__FORMALIZED_ELEMENTS = eINSTANCE.getFormalCBPLanguage_FormalizedElements();

		/**
		 * The meta object literal for the '<em><b>Cbp Metamodel</b></em>' attribute feature.
		 * <!-- begin-user-doc -->
		 * <!-- end-user-doc -->
		 * @generated
		 */
		EAttribute FORMAL_CBP_LANGUAGE__CBP_METAMODEL = eINSTANCE.getFormalCBPLanguage_CbpMetamodel();

		/**
		 * The meta object literal for the '<em><b>Abstract GI Net</b></em>' attribute feature.
		 * <!-- begin-user-doc -->
		 * <!-- end-user-doc -->
		 * @generated
		 */
		EAttribute FORMAL_CBP_LANGUAGE__ABSTRACT_GI_NET = eINSTANCE.getFormalCBPLanguage_AbstractGINet();

		/**
		 * The meta object literal for the '<em><b>Root Element</b></em>' containment reference feature.
		 * <!-- begin-user-doc -->
		 * <!-- end-user-doc -->
		 * @generated
		 */
		EReference FORMAL_CBP_LANGUAGE__ROOT_ELEMENT = eINSTANCE.getFormalCBPLanguage_RootElement();

		/**
		 * The meta object literal for the '{@link ar.edu.utn.frsf.cidisi.ginet.formalization.impl.FormalAssociationImpl <em>Formal Association</em>}' class.
		 * <!-- begin-user-doc -->
		 * <!-- end-user-doc -->
		 * @see ar.edu.utn.frsf.cidisi.ginet.formalization.impl.FormalAssociationImpl
		 * @see ar.edu.utn.frsf.cidisi.ginet.formalization.impl.FormalizationPackageImpl#getFormalAssociation()
		 * @generated
		 */
		EClass FORMAL_ASSOCIATION = eINSTANCE.getFormalAssociation();

		/**
		 * The meta object literal for the '<em><b>Value</b></em>' attribute feature.
		 * <!-- begin-user-doc -->
		 * <!-- end-user-doc -->
		 * @generated
		 */
		EAttribute FORMAL_ASSOCIATION__VALUE = eINSTANCE.getFormalAssociation_Value();

		/**
		 * The meta object literal for the '<em><b>Key</b></em>' attribute feature.
		 * <!-- begin-user-doc -->
		 * <!-- end-user-doc -->
		 * @generated
		 */
		EAttribute FORMAL_ASSOCIATION__KEY = eINSTANCE.getFormalAssociation_Key();

		/**
		 * The meta object literal for the '{@link ar.edu.utn.frsf.cidisi.ginet.formalization.impl.FormalElementImpl <em>Formal Element</em>}' class.
		 * <!-- begin-user-doc -->
		 * <!-- end-user-doc -->
		 * @see ar.edu.utn.frsf.cidisi.ginet.formalization.impl.FormalElementImpl
		 * @see ar.edu.utn.frsf.cidisi.ginet.formalization.impl.FormalizationPackageImpl#getFormalElement()
		 * @generated
		 */
		EClass FORMAL_ELEMENT = eINSTANCE.getFormalElement();

		/**
		 * The meta object literal for the '<em><b>Element</b></em>' reference feature.
		 * <!-- begin-user-doc -->
		 * <!-- end-user-doc -->
		 * @generated
		 */
		EReference FORMAL_ELEMENT__ELEMENT = eINSTANCE.getFormalElement_Element();

		/**
		 * The meta object literal for the '{@link ar.edu.utn.frsf.cidisi.ginet.formalization.impl.MetamodelElementImpl <em>Metamodel Element</em>}' class.
		 * <!-- begin-user-doc -->
		 * <!-- end-user-doc -->
		 * @see ar.edu.utn.frsf.cidisi.ginet.formalization.impl.MetamodelElementImpl
		 * @see ar.edu.utn.frsf.cidisi.ginet.formalization.impl.FormalizationPackageImpl#getMetamodelElement()
		 * @generated
		 */
		EClass METAMODEL_ELEMENT = eINSTANCE.getMetamodelElement();

		/**
		 * The meta object literal for the '<em><b>Element</b></em>' reference feature.
		 * <!-- begin-user-doc -->
		 * <!-- end-user-doc -->
		 * @generated
		 */
		EReference METAMODEL_ELEMENT__ELEMENT = eINSTANCE.getMetamodelElement_Element();

		/**
		 * The meta object literal for the '{@link ar.edu.utn.frsf.cidisi.ginet.formalization.impl.RootElementImpl <em>Root Element</em>}' class.
		 * <!-- begin-user-doc -->
		 * <!-- end-user-doc -->
		 * @see ar.edu.utn.frsf.cidisi.ginet.formalization.impl.RootElementImpl
		 * @see ar.edu.utn.frsf.cidisi.ginet.formalization.impl.FormalizationPackageImpl#getRootElement()
		 * @generated
		 */
		EClass ROOT_ELEMENT = eINSTANCE.getRootElement();

		/**
		 * The meta object literal for the '<em><b>Element</b></em>' reference feature.
		 * <!-- begin-user-doc -->
		 * <!-- end-user-doc -->
		 * @generated
		 */
		EReference ROOT_ELEMENT__ELEMENT = eINSTANCE.getRootElement_Element();

	}

} //FormalizationPackage
